(PYTHON) Day - 18 Date and Time

Reference

  • 문제 출처 - HackerRank
  • 파이썬 연습 - Practice - Python

개인적인 생각과 상상으로 작성한 내용들이 포함되어 있습니다
문제를 풀고 Discussion Tab을 참고하며 코드 스타일을 개선하려고 노력하고자 합니다


HackerRank


Date and Time


기본 개념

Calendar 모듈

import calendar as ca

# firstweekday는 달력의 시작 요일을 설정(0=월요일 ~ 6=일요일)

# formatmonth는 원하는 년도와 달력을 설정

print(ca.TextCalendar(firstweekday=6).formatmonth(2020, 3))
March 2020
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

Calendar Module


문제 : 입력 날짜의 요일을 출력하는 문제
입력 : MM DD YYYY 형식으로 날짜 입력
출력 : 해당 요일을 대문자로 출력

08 05 2015

WEDNESDAY

calender 모듈을 사용하면 날짜와 관련된 문제들을 매우 쉽게 해결할 수 있다
calendar.day_name 메소드 클래스에는 월요일부터 일요일까지의 이름이 담겨있다
calendar.weekday(year, month, day) 함수는 해당 날짜의 요일 정보를 int 값으로 반환한다

import calendar

mm, dd, yy = map(int, input().split())
date = calendar.weekday(yy, mm, dd)

print(calendar.day_name[date].upper())

Time Delta


입력 : Day dd Mon yyyy hh:mm:ss +xxxx 형식
출력 : abs(t1 - t2) 의 값

2
Sun 10 May 2015 13:54:36 -0700
Sun 10 May 2015 13:54:36 -0000
Sat 02 May 2015 19:54:36 +0530
Fri 01 May 2015 13:54:36 -0000

25200
88200

from datetime import datetime
for \_ in range(int(input())):
t1=datetime.strptime(input(),'%a %d %b %Y %H:%M:%S %z')
t2=datetime.strptime(input(),'%a %d %b %Y %H:%M:%S %z')
print (int(abs((t1-t2).total_seconds())))